46 research outputs found

    Resource-Aware Multimedia Content Delivery: A Gambling Approach

    Get PDF
    In this paper, we propose a resource-aware solution to achieving reliable and scalable stream diffusion in a probabilistic model, i.e. where communication links and processes are subject to message losses and crashes, respectively. Our solution is resource-aware in the sense that it limits the memory consumption, by strictly scoping the knowledge each process has about the system, and the bandwidth available to each process, by assigning a fixed quota of messages to each process. We describe our approach as gambling in the sense that it consists in accepting to give up on a few processes sometimes, in the hope of better serving all processes most of the time. That is, our solution deliberately takes the risk not to reach some processes in some executions, in order to reach every process in most executions. The underlying stream diffusion algorithm is based on a tree-construction technique that dynamically distributes the load of forwarding stream packets among processes, based on their respective available bandwidths. Simulations show that this approach pays off when compared to traditional gossiping, when the latter faces identical bandwidth constraint

    Resource-Aware Multimedia Content Delivery: A Gambling Approach

    Get PDF
    In this paper, we propose a resource-aware solution to achieving reliable and scalable stream diffusion in a probabilistic model, i.e. where communication links and processes are subject to message losses and crashes, respectively. Our solution is resource-aware in the sense that it limits the memory consumption, by strictly scoping the knowledge each process has about the system, and the bandwidth available to each process, by assigning a fixed quota of messages to each process. We describe our approach as gambling in the sense that it consists in accepting to give up on a few processes sometimes, in the hope of better serving all processes most of the time. That is, our solution deliberately takes the risk not to reach some processes in some executions, in order to reach every process in most executions. The underlying stream diffusion algorithm is based on a tree-construction technique that dynamically distributes the load of forwarding stream packets among processes, based on their respective available bandwidths. Simulations show that this approach pays off when compared to traditional gossiping, when the latter faces identical bandwidth constraint

    Protocol objects and patterns for structuring reliable distributed systems

    No full text
    This thesis is at the crossing of object-orientation and reliable distributed systems, and contributes to integrate those two research fields. Existing distributed programming environments can be characterised according to whether they rely on object concepts and to whether they deal with reliability issues. Most of such environments combine objects and distribution, although they follow different approaches in doing so. However, only a minority is concerned with reliability. This is not surprising, since the design of reliable distributed software requires to deal with many non-trivial issues, such as reliable communication, failure detection, consensus, etc. In this context, the research presented here focuses on fundamental programming abstractions for structuring reliability issues at the system level. Three questions are at the heart of that concern: (1) what abstractions are most adequate to model reliability, (2) how to represent them to promote flexible design, and (3) how to implement them to promote code reuse. These questions enable to further categorise existing distributed environments as reliability-based or protocol-based. The former answer question 1, by proposing either group communication or transactions, whereas the latter answer questions 2 and 3 by providing protocols as basic structuring abstractions. Because transactions and group communication are primarily aimed at application programmers, reliability-based environments are of limited help for system programmers. As for protocol-based environments, none integrates recent advances in object-orientation, such as design patterns, and in the theory of asynchronous distributed systems augmented with unreliable failure detectors. The contribution of this research is in its attempt to address questions 2 and 3, while it acknowledges existing theoretical results as possible answers to question 1. The thesis introduces the protocol-oriented approach, together with Bast, an object-oriented framework written in Smalltalk and later ported on Java. The Bast framework relies on protocols as basic programming abstractions, each protocol representing an elemental problem/solution pair. It supports the composition of such elemental pairs through protocol objects and protocol patterns; they are the proposed answers to question 2. Protocol objects are distributed objects capable of participating in virtually any kind of remote interactions, whereas protocol patterns are domain-specific design patterns that describe how to compose protocol objects. Bast provides an extensible library of protocol object classes, implementing reliable point-to-point and multicast communication, failure detection, consensus, etc. Two protocol patterns are presented: Active Replication, which helps in the assembling of protocol objects for active replication, and Distributed Agreement, which captures the recurring structure of various classical agreement protocols. In Bast, three protocol object classes are derived from the Distributed Agreement pattern, each one solving a specific agreement problem, that is atomic commitment, total order multicast and view synchrony. The Bast framework is also based on an open implementation, which is the proposed answer to question 3. Protocol dependencies are managed within protocol objects using a general-purpose design pattern, known as Strategy. The Strategy pattern is applied to implement distributed algorithms as separate objects from the protocol objects that use them. It helps to overcome the limitations of single inheritance as far as protocol composition is concerned. As a consequence, one can flexibly change or customise any distributed algorithms within existing protocol objects. This pattern also enables to manage concurrent protocol executions in a transparent and recursive way. The thesis concludes by sketching how transparency could be added on top of Bast, with no loss of flexibility

    From ad hoc networks to ad hoc applications

    No full text
    Abstract-- This paper presents the first result of an ongoing research on mobile peer-to-peer communication paradigm and on ad hoc networks. This result is threefold: (1) we propose a definition of ad hoc applications that is independent of the notion of ad hoc networks, (2) we advocate for the need of an adequate development framework for building ad hoc applications, (3) we introduce such a framework, which is independent of the underlying network technology but which relies on existing standards. To illustrate our approach, we also sketch how our framework can be used to build a real ad hoc application. Ad hoc network; Ad hoc application; Framework; Abstraction; Peer-to-Peer; Mobile; Collocation; Location-based; Java Phone

    An Adaptive Algorithm for Efficient Message Diffusion in Unreliable Environments

    No full text
    In this paper, we propose a novel approach for solving the reliable broadcast problem in a probabilistic unreliable model. Our approach consists in first defining the optimality of probabilistic reliable broadcast algorithms and the adaptiveness of algorithms that aim at converging toward such optimality. Then, we propose an algorithm that precisely converges toward the optimal behavior, thanks to an adaptive strategy based on Bayesian statistical inference. We compare the performance of our algorithm with that of a typical gossip algorithm through simulation. Our results show, for example, that our adaptive algorithm quickly converges toward such exact knowledge. 1

    Abstract Using the Strategy Design Pattern to Compose Reliable Distributed Protocols

    No full text
    Reliable distributed systems involve many complex protocols. In this context, protocol composition is a central concept, because it allows the reuse of robust protocol implementations. In this paper, we describe how the Strategy pattern has been recursively used to support protocol composition in the BAST framework. We also discuss design alternatives that have been applied in other existing frameworks.
    corecore